// Implement a simple log to display strategies used during any solving operation.

// Define SudokuUI object if it is not already defined
if (typeof SudokuUI === 'undefined') var SudokuUI = {};

SudokuUI.log = 
{
	element : null,
	queue : [],
	timeout : null,

	init : function ()
	{
		SudokuUI.log.element = document.getElementById('LogPanelDiv');
	},

	// send a string to log print queue
	print : function (s)
	{
		SudokuUI.log.queue.push(s);
		if (SudokuUI.log.timeout === null)
		{
			SudokuUI.log.timeout = setTimeout(SudokuUI.log.display, 20);
		}
	},

	// print queue
	display : function ()
	{
		var tmp = SudokuUI.log.queue;
		SudokuUI.log.queue = [];
		SudokuUI.log.timeout = null;
		for (var i = 0; i < tmp.length; i++)
		{
			SudokuUI.log.element.appendChild(document.createTextNode(tmp[i]));
			SudokuUI.log.element.appendChild(document.createElement('BR'));
		}
	},

	// clear log
	clear : function ()
	{
		var clone = SudokuUI.log.element.cloneNode(false);
		SudokuUI.log.element.parentNode.replaceChild(clone, SudokuUI.log.element);
		SudokuUI.log.element = clone;
	}
}
